#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;

int main(int argc, char** argv) {
    // 10-12
    cv::Mat src, dst_b, dst_b_i, dst_tur, dst_z, dst_z_i;
    if (argc < 2) {
        cout << "parameters miss!\n"
            << argv[0] << " 1.jpg 2.jpg" << endl;
        return -1;
    }
    src = cv::imread(argv[1]);
    cv::imshow("src", src);
    cv::threshold(src, dst_b, 128, 255, cv::THRESH_BINARY);
    cv::threshold(src, dst_b_i, 128, 255, cv::THRESH_BINARY_INV);
    cv::threshold(src, dst_tur, 128, 255, cv::THRESH_TRUNC);
    cv::threshold(src, dst_z, 128, 255, cv::THRESH_TOZERO);
    cv::threshold(src, dst_z_i, 128, 255, cv::THRESH_TOZERO_INV);
    
    cv::imshow("bin", dst_b);
    cv::imshow("bin_inv", dst_b_i);
    cv::imshow("trunc", dst_tur);
    cv::imshow("zero", dst_z);
    cv::imshow("zero_inv", dst_z_i);
    
    // a  parm1 ?
    cv::Mat adp;
    // cv::adaptiveThreshold(src, adp, 255, cv::ADAPTIVE_THRESH_MEAN_C,0,);
    // cv::imshow("resize", temp);

    // b
    

    // c
    // cv::absdiff(temp, dst, diff);   // 需要大小完全一直
    // cv::imshow("abs_diff", diff);

 
    cv::waitKey(0);
    return 0;
}